﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using DAL;
using BOL;
using Website.Logger;

namespace UILGestion.Admin.Obras
{
    public partial class ObraReadForm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    internalid.Value = (string)Request.QueryString["id"];
                    menuCtrl2.loadMenuSeguridad();
                    FormatForm();
                }
                catch (SqlException sqlex)
                {
                    WebServerSideSqlError.Log(sqlex);

                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


                }
                catch (Exception ex)
                {
                    WebServerSideError.Log(ex);
                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                         "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

                }

            }
        }
        private void readObject()
        {
           



                Obra obra =

                    DbUtil.Db.Obras.Single(p => p.idInternal == int.Parse(internalid.Value));


                codigoLabel.Text = obra.codigo;
                proyectoLabel.Text = obra.Proyecto.descripcion;
                proyectoid.Value = obra.idProyecto.ToString();
                descripcionLabel.Text = obra.descripcion;
                direccionLabel.Text = obra.direccion;
                paisLabel.Text = obra.pais;
                departamentoLabel.Text = obra.departamento;
                provinciaLabel.Text = obra.provincia;
                distritoLabel.Text = obra.distrito;
                responsable.Text = obra.responsableEntrega;
                tipoObraLabel.Text = obra.TipoObra.descripcion;
                tipoCambioLabel.Text = obra.tipoCambio.Value.ToString();
                centroCostoLabel.Text = obra.centroCosto;
                direccionEntregaLabel.Text = obra.direcccionEntrega;
                //Text = obra.atencionEntrega;
                direccionFacturacionLabel.Text = obra.direccionFacturacion;

                incluyeCheckBox.Checked = obra.incluyeIGV.Value;
                clienteLabel.Text = obra.cliente;

                fechaInicioLabel.Text = obra.fechaInicio.Value.ToShortDateString();
                fechaCreLabel.Text = obra.fechaCre.ToString();
                fechaModLabel.Text = obra.fechaMod.ToString();
            
        }
        private void FormatForm()
        {



            //ShowAllComboBox();
            //restricionesForm();



            string Lang = "es-ES";  //para controlar el idioma 
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo
   (Lang);

            readObject();


        }


     

        

        protected void accionButton_Click(object sender, EventArgs e)
        {
            try
            {

                if ((sender as Button).ID == "editarButton")
                {
                    Response.Redirect("ObraEditForm.aspx?type=E&id=" + internalid.Value, true);
                }
          
            if ((sender as Button).ID == "refreshButton")
            {

                Response.Redirect("ObraReadForm.aspx?id=" + internalid, false);
            }
            if ((sender as Button).ID == "eliminarButton")
            {
                ObraBL obra =new  ObraBL();
                bool result=obra.delete(int.Parse(internalid.Value));
                if (result == true)
                {
                    Response.Redirect("ObraListForm.aspx", false);
                }
            }
            if ((sender as Button).ID == "nuevoButton")
            {

                Response.Redirect("ObraEditForm.aspx?type=A", false);
            }
            if ((sender as Button).ID == "anteriorButton")
            {
                dbGestionDataContext _db =
                    new dbGestionDataContext(Parametros.strConnString);

                Obra obra = new Obra();
                int intAnterior = obra.getidAnterior(_db, int.Parse(internalid.Value),
                    int.Parse(proyectoid.Value));


                Response.Redirect("ObraReadForm.aspx?id=" + intAnterior, false);

            }
            if ((sender as Button).ID == "siguienteButton")
            {
                dbGestionDataContext _db = new dbGestionDataContext(Parametros.strConnString);

                Obra obra = new Obra();


                int intSiguiente = obra.getidSiguiente(_db, int.Parse(internalid.Value),
                    int.Parse(proyectoid.Value));
                Response.Redirect("ObraReadForm.aspx?id=" + intSiguiente, false);
            }
            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);

                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
        }

        protected void nuevoButton_Click(object sender, EventArgs e)
        {
            try
            {
                Response.Redirect("~/Seguridad/empleadoInsertForm.aspx", false);
            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);

                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
        }
    }
}